#include "selectwin.h"
#include "ui_selectwin.h"
#include <QMessageBox>
#include <QSqlError>
SelectWin::SelectWin(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SelectWin)
{
    ui->setupUi(this);
    model = new QSqlTableModel(this);
    // 连接删除按钮的点击信号到槽函数
    connect(ui->deleteBt, &QPushButton::clicked, this, &SelectWin::on_deleteBt_clicked);
}

SelectWin::~SelectWin()
{
    delete ui;
}

void SelectWin::on_selectBt_clicked()
{
    if(ui->empRb->isChecked())
    {
        model->setTable("employee");//设置员工表格
    }
    if(ui->attRb->isChecked())
    {
        model->setTable("attendance");
    }

    // 设置过滤器
    // model->setFilter("name='张三'");
    // 查询
    model->select();

    ui->tableView->setModel(model);
}

void SelectWin::on_deleteBt_clicked()
{
    // 获取当前选中的行
    QModelIndexList selectedRows = ui->tableView->selectionModel()->selectedRows();
    if (selectedRows.isEmpty()) {
        // 如果没有选中行，给出提示
        QMessageBox::information(this, "提示", "请选择要删除的员工信息。");
        return;
    }

    // 确认删除操作
    QMessageBox::StandardButton reply;
    reply = QMessageBox::question(this, "确认删除", "确定要删除选中的员工信息吗？",
                                  QMessageBox::Yes|QMessageBox::No);
    if (reply == QMessageBox::Yes) {
        // 遍历选中的行并删除
        for (const auto& index : selectedRows) {
            int row = index.row();
            if (model->removeRow(row)) {
                // 删除成功，提交更改
                model->submitAll();
            } else {
                // 删除失败，给出错误提示
                QMessageBox::critical(this, "错误", "删除员工信息失败：" + model->lastError().text());
            }
        }
        // 重新查询以更新表格显示
        model->select();
    }
}
